home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Missions / Mission_10 / Mission.script < prev    next >
Text File  |  2001-12-19  |  9KB  |  297 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CInterceptConvoyMission extends
  11.   CBaseMission,
  12.   CInterceptConvoyMissionObjectList,
  13.   CInterceptConvoyMission_Strings,
  14.   CNavPointUser
  15. {
  16.   int GetAutoGeneratedUnitsQty()
  17.   {
  18.     return 6;
  19.   }
  20.  
  21.   void CInterceptConvoyMission()
  22.   {
  23.     BaseMission_InitMission();
  24.  
  25.     BaseMission_UpdateLoadProgress();
  26.     CreateComponent("DebugCamera", "GameObject", "CDebugCamera");
  27.     SetComponentPosition("DebugCamera",
  28.       matrix(
  29.         1.0, 0.0, 0.0, 3120.0,
  30.         0.0, 1.0, 0.0, 4670.0,
  31.         0.0, 0.0, 1.0,  500.0,
  32.         0.0, 0.0, 0.0,    1.0
  33.       ));
  34.  
  35.     // CreateComponent(IDToRegister, ComponentID, ScriptName | FileName | "")
  36.     BaseMission_UpdateLoadProgress();
  37.     CreateComponent("Atmosphere", "Atmosphere", "CInterceptConvoyMission_Atmosphere");
  38.  
  39.     BaseMission_UpdateLoadProgress();
  40.     CreateComponent("Sky", "SkyObject", "CInterceptConvoyMission_Sky");
  41.  
  42.     BaseMission_UpdateLoadProgress();
  43.     CreateComponent("Terrain", "ProgressiveTerrainObject", "CInterceptConvoyMission_Terrain");
  44.  
  45.     BaseMission_UpdateLoadProgress();
  46.     CreateComponent("Forest", "Forest", "CInterceptConvoyMission_Forest");
  47.  
  48.     BaseMission_UpdateLoadProgress();
  49.     CreateComponent( "AIController", "AIController", "CMission10_AIController");
  50.  
  51.     BaseMission_CreateObjects();
  52.  
  53.    // A Convoy direction
  54.    SetBehaviorGroupRank( "10_NaziConv_A_01", "ConvA_Rank", 1);
  55.    SetBehaviorGroupRank( "10_NaziConv_A_02", "ConvA_Rank", 2);
  56.    SetBehaviorGroupRank( "10_NaziConv_A_03", "ConvA_Rank", 3);
  57.    SetBehaviorGroupRank( "10_NaziConv_A_04", "ConvA_Rank", 4);
  58.    SetBehaviorGroupRank( "10_NaziConv_A_05", "ConvA_Rank", 5);
  59.    SetBehaviorGroupRank( "10_NaziConv_A_06", "ConvA_Rank", 6);
  60.    SetBehaviorGroupRank( "10_NaziConv_A_07", "ConvA_Rank", 7);
  61.    SetBehaviorGroupRank( "10_NaziConv_A_08", "ConvA_Rank", 8);
  62.    SetBehaviorGroupRank( "10_NaziConv_A_09", "ConvA_Rank", 9);
  63.    SetBehaviorGroupRank( "10_NaziConv_A_11", "ConvA_Rank", 11);
  64.    SetBehaviorGroupRank( "10_NaziConv_A_12", "ConvA_Rank", 12);
  65.    SetBehaviorGroupRank( "10_NaziConv_A_13", "ConvA_Rank", 13);
  66.    SetBehaviorGroupRank( "10_NaziConv_A_14", "ConvA_Rank", 14);
  67.    SetBehaviorGroupRank( "10_NaziConv_A_15", "ConvA_Rank", 15);
  68.  
  69.    // B Convoy direction
  70.    SetBehaviorGroupRank( "10_NaziConv_B_01", "ConvB_Rank", 1);
  71.    SetBehaviorGroupRank( "10_NaziConv_B_02", "ConvB_Rank", 2);
  72.    SetBehaviorGroupRank( "10_NaziConv_B_03", "ConvB_Rank", 3);
  73.    SetBehaviorGroupRank( "10_NaziConv_B_04", "ConvB_Rank", 4);
  74.    SetBehaviorGroupRank( "10_NaziConv_B_05", "ConvB_Rank", 5);
  75.    SetBehaviorGroupRank( "10_NaziConv_B_06", "ConvB_Rank", 6);
  76.    SetBehaviorGroupRank( "10_NaziConv_B_07", "ConvB_Rank", 7);
  77.    SetBehaviorGroupRank( "10_NaziConv_B_08", "ConvB_Rank", 8);
  78.    SetBehaviorGroupRank( "10_NaziConv_B_09", "ConvB_Rank", 9);
  79.    SetBehaviorGroupRank( "10_NaziConv_B_10", "ConvB_Rank", 10);
  80.    SetBehaviorGroupRank( "10_NaziConv_B_11", "ConvB_Rank", 11);
  81.    SetBehaviorGroupRank( "10_NaziConv_B_12", "ConvB_Rank", 12);
  82.    SetBehaviorGroupRank( "10_NaziConv_B_13", "ConvB_Rank", 13);
  83.    SetBehaviorGroupRank( "10_NaziConv_B_14", "ConvB_Rank", 14);
  84.    SetBehaviorGroupRank( "10_NaziConv_B_15", "ConvB_Rank", 15);
  85.    SetBehaviorGroupRank( "10_NaziConv_B_16", "ConvB_Rank", 16);
  86.  
  87.    //  Rank_PatrolA
  88.    SetBehaviorGroupRank( "10_NaziPatrol_A_01", "Rank_PatrolA", 1);
  89.    SetBehaviorGroupRank( "10_NaziPatrol_A_02", "Rank_PatrolA", 2);
  90.    SetBehaviorGroupRank( "10_NaziPatrol_A_03", "Rank_PatrolA", 3);
  91.    SetBehaviorGroupRank( "10_NaziPatrol_A_04", "Rank_PatrolA", 4);
  92.  
  93.    // Rank_PatrolCrossA
  94.    SetBehaviorGroupRank( "10_NaziCrossA_Patrol_01", "Rank_PatrolCrossA", 1);
  95.    SetBehaviorGroupRank( "10_NaziCrossA_Patrol_02", "Rank_PatrolCrossA", 2);
  96.    SetBehaviorGroupRank( "10_NaziCrossA_Patrol_03", "Rank_PatrolCrossA", 3);
  97.  
  98.    // Rank_SharkPatrol
  99.    SetBehaviorGroupRank( "10_SharkPatrol_01", "Rank_SharkPatrol", 1);
  100.    SetBehaviorGroupRank( "10_SharkPatrol_02", "Rank_SharkPatrol", 2);
  101.    SetBehaviorGroupRank( "10_SharkPatrol_03", "Rank_SharkPatrol", 3);
  102.    SetBehaviorGroupRank( "10_SharkPatrol_04", "Rank_SharkPatrol", 4);
  103.  
  104.   }
  105.  
  106.  
  107.   array m_MissionObjectivesStatuses =
  108.           array(
  109.             str_ObjectiveInProgress,
  110.             str_ObjectiveInProgress
  111.           );
  112.  
  113.   array m_BonusMissionObjectivesStatuses =
  114.           array(
  115.             str_ObjectiveInProgress
  116.                   );
  117.  
  118.   //
  119.   //  'virtual' methods
  120.   //
  121.  
  122.   //
  123.   //  Mission statistics
  124.  
  125.   string GetMissionStatistics()
  126.   {
  127.     return str_StatisticsTitle;
  128.   }
  129.  
  130.   //
  131.   //  Mission navpoints
  132.  
  133.   array GetNavPoints()
  134.   {
  135.     array navpoints =
  136.       array(
  137.         GetNavPoint("NavPointA"),
  138.         GetNavPoint("NavPointB"),
  139.         GetNavPoint("NavPoint_Austerlitz")
  140.       );
  141.     return navpoints;
  142.   }
  143.  
  144.   // the 1st navpoint in the array is a default one
  145.   array GetNavPointsDescriptions()
  146.   {
  147.     return m_NavigationPoints;
  148.   }
  149.  
  150.   //
  151.   //  Mission map skin file
  152.  
  153.   string GetMapSkinFileName()
  154.   {
  155.     return "Missions/Mission_10/Map.skin";
  156.   }
  157.   // TMP
  158.  
  159.   void WarningDetected()
  160.   {
  161.     Core_BroadcastEvent(
  162.       "OnDisplayMessage",
  163.       str_WarningMessage,
  164.       m_BadNewsColor);
  165.   }
  166.  
  167.   void NeedToQuit()
  168.   {
  169.     BaseMission_DelayedQuit();
  170.   }
  171.   // Objective of convoys
  172.   boolean ConvA_Killed = false;
  173.   boolean ConvB_Killed = false;
  174.   int m_ConvA_Killed = 0;
  175.   final int ConvA_KilledToWin = 14;
  176.   int m_ConvB_Killed = 0;
  177.   final int ConvB_KilledToWin = 16;
  178.   int m_Titovo_Killed = 0;
  179.   final int Titovo_KilledToWin = 7;
  180.  
  181.   boolean ConvoyASatrtMessage = false;
  182.   boolean ConvoyBSatrtMessage = false;
  183.   boolean ConvoyAStopMessage  = false;
  184.   boolean ConvoyBStopMessage  = false;
  185.  
  186.   void OnConvoyAStart()
  187.   {
  188.     if ( !ConvoyASatrtMessage )
  189.      {
  190.        ConvoyASatrtMessage = true;
  191. //        Core_LogMessage("Camera shows: Convoy A after moving start. Unit 02");
  192. //        Core_SendEventTo(
  193. //          "Helicopter",
  194. //          "ShowEventObject",
  195. //          "10_NaziConv_A_02",       //     - id of object to show
  196. //          70.0                      //     - distance from camera to object
  197. //          );
  198.      }
  199.   }
  200.  
  201.   void OnConvoyBStart()
  202.   {
  203.     if ( !ConvoyBSatrtMessage )
  204.      {
  205.         ConvoyBSatrtMessage = true;
  206.         Core_LogMessage("Camera shows: Convoy B after moving start. Unit 02");
  207.         Core_SendEventTo(
  208.           "Helicopter",
  209.           "ShowEventObject",
  210.           "10_NaziConv_B_02",       //     - id of object to show
  211.           70.0                      //     - distance from camera to object
  212.           );
  213.      }
  214.   }
  215.  
  216.   void OnGameObjectDestroyed(string _id)
  217.   {
  218.     BaseMission_OnGameObjectDestroyed(_id);
  219.  
  220.     if ( Core_IsStringStartsWith( _id, "10_NaziConv_A") )
  221.     {
  222.       m_ConvA_Killed = m_ConvA_Killed + 1;
  223.       if ( m_ConvA_Killed >= ConvA_KilledToWin )
  224.       {
  225.         ConvA_Killed = true;
  226.         BaseMission_CompleteObjective(0);
  227.       }
  228.     }
  229.     if ( Core_IsStringStartsWith( _id, "10_NaziConv_B") )
  230.     {
  231.       m_ConvB_Killed = m_ConvB_Killed + 1;
  232.       if ( m_ConvB_Killed >= ConvB_KilledToWin )
  233.       {
  234.         ConvB_Killed = true;
  235.         BaseMission_CompleteObjective(1);
  236.       }
  237.     }
  238.  
  239.     if ( Core_IsStringStartsWith( _id, "10_NaziTitovo") )
  240.     {
  241.       m_Titovo_Killed = m_Titovo_Killed + 1;
  242.       if ( m_Titovo_Killed >= Titovo_KilledToWin )
  243.       {
  244.         BaseMission_CompleteBonusObjective(0);
  245.         m_Titovo_Killed = m_Titovo_Killed + 1;
  246.       }
  247.     }
  248.  
  249.   }
  250.   void OnConvoyAStop()
  251.   {
  252.     Core_BroadcastEvent(
  253.         "OnDisplayMessage",
  254.         str_ConvoyAEscaped,
  255.         m_BadNewsColor
  256.       );
  257.     if ( !ConvoyAStopMessage )
  258.      {
  259.       ConvoyAStopMessage = true;
  260.       Core_SendEventTo(
  261.             "Helicopter",
  262.             "ShowEventPoint",
  263.             vector(3390, 13365, 0), //        - point to show
  264.             80.0                    //        - distance from camera to point
  265.         );
  266.      }
  267.     BaseMission_DelayedQuit();
  268.   }
  269.   void OnConvoyBStop()
  270.   {
  271.     Core_BroadcastEvent(
  272.         "OnDisplayMessage",
  273.         str_ConvoyBEscaped,
  274.         m_BadNewsColor
  275.       );
  276.     if ( !ConvoyBStopMessage )
  277.      {
  278.       ConvoyBStopMessage = true;
  279.       Core_SendEventTo(
  280.             "Helicopter",
  281.             "ShowEventPoint",
  282.             vector(9030, 3925, 0), //        - point to show
  283.             80.0                   //        - distance from camera to point
  284.         );
  285.      }
  286.     BaseMission_DelayedQuit();
  287.   }
  288.  
  289.   void OnMissionLoaded()
  290.   {
  291.     Core_SendEventTo("Helicopter", "OnInitiallyEnableTargetScreen", false);
  292.  
  293.     // Start mission music playing
  294.     Core_SendEventTo(SOID_MusicController, "PlayMissionMusic", 10);
  295.   }
  296. }
  297.